package algorithm.easy;

/**
 * @BelongsProject: LeetCode
 * @BelongsPackage: algorithm.easy
 * @Author: 江岸
 * @CreateTime: 2021-02-17 22:33
 * @Description:给出一个由二维数组表示的矩阵，以及两个正整数r和c，分别表示想要的重构的矩阵的行数和列数。
 *
 * 重构后的矩阵需要将原始矩阵的所有元素以相同的行遍历顺序填充。
 *
 * 如果具有给定参数的reshape操作是可行且合理的，则输出新的重塑矩阵；否则，输出原始矩阵。
 *
 * 来源：力扣（LeetCode）
 * 链接：https://leetcode-cn.com/problems/reshape-the-matrix
 * 著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。
 */
public class MatrixReshape566 {
    public int[][] matrixReshape(int[][] nums, int r, int c) {
        if(nums.length*nums[0].length!=r*c){
            return nums;
        }
        int[][] arr = new int[r][c];
        for (int i=0;i<nums.length;i++){
            for (int j=0;j<nums[i].length;j++){
                //放入新的矩阵
                int index = i*nums[i].length + j;
                int hang = index/c;
                int lie = index%c;
                arr[hang][lie] = nums[i][j];
            }
        }
        return arr;
    }

}
